﻿using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using MiWebSite_Core;
using WLMCoreLibrary;
using System.IO;
using System.Xml;

namespace MiniWebsite
{
    public partial class _Default : System.Web.UI.Page
    {
        WebSiteMainConfiguration config = WebSiteMainConfiguration.GetConfig();
        protected void Page_Load(object sender, EventArgs e)
        {
            ProcesarPagina();
        }

        protected void ProcesarPagina()
        {
            string nombreContenido = Request.QueryString["seccion"];
            if (nombreContenido == null)
                nombreContenido = "";
            MiWebSitePage pagina = new MiWebSitePage();
            pagina.DomainName = Request.Url.Host;
            string[] contenidoArray = nombreContenido.Split('/');
            pagina.Title=contenidoArray[contenidoArray.Length-1];

            XmlDocument nodoInformacion = new XmlDocument();
            nodoInformacion.LoadXml("<MiWebSiteContent><Titulo>" + pagina.Title + "</Titulo><Contenido><![CDATA[" + GetContent(nombreContenido) + "]]></Contenido></MiWebSiteContent>");
            pagina.Contenido = nodoInformacion;
            Response.Write( TransformarXML(pagina));            
            //Response.ContentType = "text/xml";
            //Response.Write(WLMFunctions.SerializeObject(pagina,true));
            Response.End();
        }

        protected string GetContent(string contentURL)
        {
            string root = Server.MapPath("/WebSiteContent");
            string rutaArchivo= root+"/"+contentURL;
            if(!File.Exists(rutaArchivo))
            {
                if (File.Exists(rutaArchivo + ".htm"))
                {
                    rutaArchivo += ".htm";
                }
                else
                {
                    if (File.Exists(rutaArchivo + ".html"))
                    {
                        rutaArchivo += ".html";
                    }
                    else
                    {
                        if (File.Exists(rutaArchivo + "/index.htm"))
                        {
                            rutaArchivo += "/index.htm";
                        }
                        else
                        {
                            if (File.Exists(rutaArchivo + "/index.html"))
                            {
                                rutaArchivo += "/index.html";
                            }
                            else
                            {
                                rutaArchivo = Server.MapPath("/WebSiteContent")+"/index.htm";
                            }
                        }
                    }
                }
            }
            TextReader lector = new StreamReader(rutaArchivo);
            string contenidoArchivo= lector.ReadToEnd();
            lector.Close();

            return contenidoArchivo;
        }

        protected string TransformarXML(MiWebSitePage xml)
        {
            List<ParametroTransformacionXML> parametros = new List<ParametroTransformacionXML>();
            //parametros.Add(new ParametroTransformacionXML("skinPath", config.Settings["skinPath"].value));
            string HTMLPagina = WLMFunctions.TransformXML(xml, config.Settings["siteURL"].value + config.Settings["skinPath"].value + "index.xsl", parametros);
            return HTMLPagina;
            //return config.Settings["siteURL"].value + config.Settings["skinPath"].value + "index.xsl";
        }
    }
}